package Igraf;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Igraf extends JFrame {
	private static final long serialVersionUID = -5430048257109295642L;
	
	// hasieraketak eta deklarazioak

	private JMenuBar menuBar;
	// menu barraren menu bat da
	// subMenu azpimenuak egiteko(bat daukagu)
	private JMenu menu, subMenu;
	// menuItem barruan bakarrik textua
	@SuppressWarnings("unused")
	private JMenuItem menuItem, irtenAukera, kopiaAukera, tailerkudeaketa,
			tailerkonpon,kopiasql, balorazio, aboalta, abobaja, abokudeak, diagnostiko,
			gehi, faq, istripuKontsulta, istrikud, onartu, tailerDat, konpon,
			tl, abo, perit, abok, exec, abokatuKontsulta, diagnostikoKontsulta,
			tailerKontsulta;

//sartuko ditudan panelak
	private TailerKudeaketa tailerKudeaketa = new TailerKudeaketa();
	private balorazioaEman balo= new balorazioaEman();
	private abokatuBerria abokatu= new abokatuBerria();
	private abokatuBaja abokatu2=new abokatuBaja();
	private diagnostikoaSartu diag=new diagnostikoaSartu();
	private aboFaktura aboFak=new aboFaktura();
	private perituFaktura periFak= new perituFaktura();
	private konponketaFaktura konFak=new konponketaFaktura();
	private tailerFaktura tailFak=new tailerFaktura();
	private faQ faqq;
	
	
	private JPanel azkenPanela = null;

	
	public Igraf() {

		this.setResizable(true);
		this.setLocationRelativeTo(null);

		azkenPanela = new mipanel(200, 300);

		JPanel goikoa = new JPanel();
		goikoa.setBackground(new Color(102, 153, 204));

		menuBar = new JMenuBar();

		/* Aukerak */

		menu = new JMenu("Fitxategi");
		menu.setMnemonic(KeyEvent.VK_A);
		irtenAukera = new JMenuItem("Irten");
		kopiaAukera = new JMenuItem("Gorde pantailan dagoena");
		kopiasql = new JMenuItem("Gorde datu basearen kopia");
		menu.add(kopiaAukera);
		
		menu.add(kopiasql);
		menu.add(irtenAukera);
		menuBar.add(menu);

		/* Tailerrak */

		menu = new JMenu("Tailerrak");
		menu.setMnemonic(KeyEvent.VK_T);
		tailerkudeaketa = new JMenuItem("Konponketa kudeatu");
		menu.add(tailerkudeaketa);
		tailerkudeaketa.setEnabled(true);		
		tailerkonpon = new JMenuItem("konponketa onartu");
		tailerkonpon.setEnabled(true);
		menu.add(tailerkonpon);
		menuBar.add(menu);

		/* Perituak */

		menu = new JMenu("Perituak");
		menu.setMnemonic(KeyEvent.VK_P);
		balorazio = new JMenuItem("Balorazioa eman");
		balorazio.setEnabled(true);
		menu.add(balorazio);
		menuBar.add(menu);

		/* Abokatuak */

		menu = new JMenu("Abokatuak");
		menu.setMnemonic(KeyEvent.VK_B);
		aboalta = new JMenuItem("Alta eman");
		aboalta.setEnabled(true);
		menu.add(aboalta);
		abobaja = new JMenuItem("Baja eman");
		abobaja.setEnabled(true);
		menu.add(abobaja);
		abokudeak = new JMenuItem("Aldaketa");
		abokudeak.setEnabled(true);
		menu.add(abokudeak);
		menuBar.add(menu);

		/* Diagnostikoak */

		menu = new JMenu("Diagnostikoak");
		menu.setMnemonic(KeyEvent.VK_D);
		diagnostiko = new JMenuItem("Sartu");
		diagnostiko.setEnabled(true);
		menu.add(diagnostiko);
		menuBar.add(menu);

		/* Fakturak */

		menu = new JMenu("Fakturak");
		menu.setMnemonic(KeyEvent.VK_F);
		subMenu = new JMenu("Sartu fakturak");
		perit = new JMenuItem("Peritua");
		perit.setEnabled(true);
		subMenu.add(perit);
		abok = new JMenuItem("Abokatua");
		abok.setEnabled(true);
		subMenu.add(abok);
		konpon = new JMenuItem("Konponketa");
		konpon.setEnabled(true);
		subMenu.add(konpon);
		tl = new JMenuItem("Tailerra");
		tl.setEnabled(true);
		subMenu.add(tl);
		menu.add(subMenu);
		menuBar.add(menu);

		/* Prosezuak */

		menu = new JMenu("Prosezuak");
		menu.setMnemonic(KeyEvent.VK_R);
		onartu = new JMenuItem("Parteak onartu eta tailerra esleitu");
		onartu.setEnabled(true);
		menu.add(onartu);
		tailerDat = new JMenuItem("Tailer datuak eman");
		tailerDat.setEnabled(true);
		menu.add(tailerDat);
		istrikud = new JMenuItem("Istripu datuak kudeatu");
		istrikud.setEnabled(true);
		menu.add(istrikud);
		abo = new JMenuItem("Abokatua esleitu");
		abo.setEnabled(true);
		menu.add(abo);
		exec = new JMenuItem("Prosezu guztiak exekutatu");
		exec.setEnabled(true);
		menu.add(exec);
		menuBar.add(menu);

		/* Kontsultak */

		menu = new JMenu("Kontsultak");
		menu.setMnemonic(KeyEvent.VK_C);
		istripuKontsulta = new JMenuItem("Istripuen datuak");
		abokatuKontsulta = new JMenuItem("Abokatuen datuak");
		diagnostikoKontsulta = new JMenuItem("Diagnostikoen datuak");
		tailerKontsulta = new JMenuItem("Tailerren datuak");
		menu.add(istripuKontsulta);
		menu.add(abokatuKontsulta);
		menu.add(abokatuKontsulta);
		menu.add(tailerKontsulta);
		menuBar.add(menu);

		/* Laguntza */

		menu = new JMenu("Laguntza");
		menu.setMnemonic(KeyEvent.VK_Y);
		gehi = new JMenuItem("...");
		gehi.setEnabled(true);
		menu.add(gehi);
		faq = new JMenuItem("FAQ");
		faq.setEnabled(true);
		menu.add(faq);
		menuBar.add(menu);

		goikoa.add(menuBar);
		
		this.setLayout(new BorderLayout(0, 0));
		this.add(goikoa, BorderLayout.NORTH);
		this.add(azkenPanela, BorderLayout.CENTER);		

		this.setVisible(true);
		this.setBounds(100, 50, 800, 600);
		this.setResizable(true);
		this.setTitle("OpenSecur");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		/* Gertaerak */
		// irten
		ActionListener irten = new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				try {
					System.exit(0);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
		irtenAukera.addActionListener(irten);

		// kopiaGorde
		ActionListener kopi = new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				{
					try {
						BufferedImage pantaila = new Robot()
								.createScreenCapture(new Rectangle(Toolkit
										.getDefaultToolkit().getScreenSize()));
						// Png bezala gorde
						File fitx = new File("imprKopiak/pantaila.png");
						ImageIO.write(pantaila, "png", fitx);
					}

					catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		};
		kopiaAukera.addActionListener(kopi);

		tailerkudeaketa.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailerKudeaketa);				
			}
		});

		balorazio.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(balo);				
			}
		});
		
		aboalta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(abokatu);				
			}
		});
		abobaja.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(abokatu2);				
			}
		});
		abokudeak.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(abokatu);				
			}
		});
		diagnostiko.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(diag);				
			}
		});
		abok.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(aboFak);	
			}
		});
		
		perit.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(periFak);	
			}
		});
		
		konpon.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(konFak);	
			}
		});
		
		tl.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailFak);	
			}
		});
		
		/*faq.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(faqq);	
			}
		});*/
		/*
		 * istripuKontsulta.addActionListener(this);
		 * abokatuKontsulta.addActionListener(this);
		 * diagnostikoKontsulta.addActionListener(this);
		 * tailerKontsulta.addActionListener(this);
		 * //add(f,BorderLayout.CENTER);
		 */
	}
	
	private void ezabatuAzkenPanelaEtaGehituBerria(JPanel panelBerria) {
		if (azkenPanela != null) {
			this.remove(azkenPanela);
		}
		azkenPanela = panelBerria;
		add(azkenPanela, BorderLayout.CENTER);
		setSize(getWidth() + 1, getHeight() + 1);
		setSize(getWidth() - 1, getHeight() - 1);
	}
	
	public static void main(String[] args) {
		Igraf panela = new Igraf();
		panela.setVisible(true);
		panela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
